//Source file: C:\\Postgrado\\Tesis de Grado\\Diagramas\\src\\com\\obelisco\\data\\DocumentoData.java

package com.obelisco.modelo.data;

import java.sql.Date;
import java.util.*;

import org.hibernate.validator.Min;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.NotNull;

import com.obelisco.exception.*;
import com.obelisco.modelo.data.auxiliares.Archivo;
import com.obelisco.modelo.data.pk.*;

public class Transaccion extends DataGenerica {

	private Integer codigo;
	private Sistema sistema;
	private CarpetaTransaccion carpeta;
	private String nombre;
	private String descripcion;
	private String spring;
	private String clase;
	private String accesorapido;
	private TipoTransaccion tipoTransaccion = null;
	private TipoDespliegue tipoDespliegue = null;
	private Properties parametros = new Properties();
	private Archivo icono = new Archivo();
	private Set preferidas = new HashSet();
	private Set<Operacion> operaciones = new HashSet<Operacion>();
	private Set<Grupo> grupos = new HashSet<Grupo>();
	private String ayuda = "";
	private Integer orden;

	
	public Transaccion() {
		super(Transaccion.class);
	}
	/*
	 * public TransaccionPK getId() { return id; }
	 * 
	 * public void setId(TransaccionPK id) { this.id = id; }
	 */
	
	//@NotNull(message="Orden. {error.notnull}")
    public Integer getOrden() {
		return orden;
	}

	public void setOrden(Integer orden) {
		this.orden = orden;
	}

	@NotNull(message="{error.notnull}")
	public CarpetaTransaccion getCarpeta() {
		return carpeta;
	}

	public void setCarpeta(CarpetaTransaccion carpeta) {
		this.carpeta = carpeta;
	}

	public String getClase() {
		return clase;
	}

	public void setClase(String clase) {
		this.clase = clase;
	}

    @NotNull(message="{error.notnull}")
    @NotEmpty(message="{error.notempty}")
	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

    @NotNull(message="{error.notnull}")
    @NotEmpty(message="{error.notempty}")
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Properties getParametros() {
		return parametros;
	}

	public void setParametros(Properties parametros) {
		this.parametros = parametros;
	}

    @NotNull(message="{error.notnull}")
    @NotEmpty(message="{error.notempty}")
	public String getSpring() {
		return spring;
	}

	public void setSpring(String spring) {
		this.spring = spring;
	}

	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

    @NotNull(message="{error.notnull}")
	public Sistema getSistema() {
		return sistema;
	}

	public void setSistema(Sistema sistema) {
		this.sistema = sistema;
	}

	public Set<Operacion> getOperaciones() {
		return operaciones;
	}

	public void setOperaciones(Set<Operacion> operaciones) {
		this.operaciones = operaciones;
	}

	public Set<Grupo> getGrupos() {
		return grupos;
	}

	public void setGrupos(Set<Grupo> grupos) {
		this.grupos = grupos;
	}

	public Archivo getIcono() {
		return icono;
	}

	public void setIcono(Archivo icono) {
		this.icono = icono;
		if (this.icono != null) {
			this.icono.setNombre("foto.jpg");
			if (this.icono.getContenido().length > 0) {
				this.icono
						.setTipo(Archivo.determinarTipo(icono.getContenido()));
			} else {
				this.icono.setContenido(new byte[] {});
				this.icono.setTipo("");
			}
		} else {
			this.icono = new Archivo();
		}

	}

	public String getAyuda() {
		return ayuda;
	}

	public void setAyuda(String ayuda) {
		this.ayuda = ayuda;
	}

	@NotNull(message="{error.notnull}")
	public TipoDespliegue getTipoDespliegue() {
		return tipoDespliegue;
	}

	public void setTipoDespliegue(TipoDespliegue tipoDespliegue) {
		this.tipoDespliegue = tipoDespliegue;
	}

    @NotNull(message="{error.notnull}")
	public TipoTransaccion getTipoTransaccion() {
		return tipoTransaccion;
	}
	
	public void setTipoTransaccion(TipoTransaccion tipoTransaccion) {
		this.tipoTransaccion = tipoTransaccion;
	}

	public String getAccesorapido() {
		return accesorapido;
	}

	public void setAccesorapido(String accesorapido) {
		this.accesorapido = accesorapido;
	}

	public Set getPreferidas() {
		return preferidas;
	}

	public void setPreferidas(Set preferidas) {
		this.preferidas = preferidas;
	}

	@Override
	public int hashCode() {
		final int PRIME = 31;
		int result = 1;
		result = PRIME * result + ((codigo == null) ? 0 : codigo.hashCode());
		return result;
	}

	@Override
	public boolean equals(DataGenerica objeto) {
		// TODO Auto-generated method stub
		if (objeto instanceof Transaccion) {
			return ((Transaccion)objeto).codigo.equals(this.codigo);
		}
		return false;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return null;
	}

}
